The present disclosure relates to the management of real storage, and more specifically, to optimizing processing of large pages.
Many computer systems support the storage of large pages, such as pages larger than 1 megabyte (MB). One of the benefits of using large pages for storage is that performance can be improved by avoiding the substantial overhead of managing pages at a 4 kilobyte (KB) level. To the operating system, 1 MB pages are simply 256 contiguous 4 KB pages. Recently, computer systems have been developed that support the storage of even larger pages, such as 2 gigabyte (GB) pages. Similar to the 1 MB pages, the 2 GB pages are simply 524,288 contiguous 4 KB pages.
However, there are performance problems inherent with processing pages larger than 4 KB for the operating system. For example, even though the applications may see large pages as one 2 GB page, at least a portion of the operating system treats the 2 GB page as 524,288 individual 4 KB pages that are each represented by a single page frame table entry (PFTE). Functions of the operating system that need to scan real memory (done 4 KB pages at a time) or priming a 2 GB page for use will result in loop iterations of more than a half a million of these PFTEs. These loop iterations can happen while holding essential locks which means the performance implications are not just the duration of the loop, but the duration of the loop while holding locks. As even larger pages are introduced in the future, the number of contiguous 4 KB pages to iterate increases which equates to much longer loop iterations while holding essential locks.